package com.ycb;

import org.apache.commons.io.FileUtils;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;

import java.io.File;
import java.io.IOException;

/**
 * 通过URL网站快照截屏
 */
public class ChromedriverTest {

    /**
     * options.add_argument('lang=zh_CN.UTF-8')  # 设置中文
     * options.add_argument('--headless')  # 无头参数,浏览器隐藏在后台运行
     * options.add_argument('--disable-gpu') # 禁用GPU加速
     * options.add_argument('--start-maximized')#浏览器最大化
     * options.add_argument('--window-size=1280x1024') # 设置浏览器分辨率（窗口大小）
     * options.add_argument('--user-agent=""') # 设置请求头的User-Agent
     * options.add_argument('--incognito')  # 隐身模式（无痕模式）
     * options.add_argument('lang=zh_CN.UTF-8')
     * # 关闭'Chrome目前受到自動測試軟體控制'的提示
     * options.add_experimental_option('useAutomationExtension', False)
     * options.add_experimental_option('excludeSwitches', ['enable-automation'])
     * prefs = {
     *     "download.default_directory":"D:\download",  # 设置浏览器下载地址(绝对路径)
     *     "profile.managed_default_content_settings.images": 2,  # 不加载图片
     * }
     * chrome_options.add_experimental_option('prefs', prefs)  # 添加prefs
     *
     *
     * # 设置无账号密码的代理
     * options.add_argument('--proxy-server=http://ip:port')
     */


    public static void main(String[] args) throws InterruptedException {
        //1.获取网页的浏览器driver
        //(1)定义url
        String url="http://www.qq.com";
        //(2)设置driver驱动chromedriver.exe（版本：2.39）路径
        System.setProperty("webdriver.chrome.driver","D:\\idea\\study-code\\chromedriver\\src\\main\\resources\\chromedriver-win64\\chromedriver.exe");        //(3)设置chrome选项（取消浏览器弹窗）
        ChromeOptions options = new ChromeOptions();
        options.addArguments("--headless","--start-maximized","--window-size=1280x1024");
        //(3)建立selenium 驱动
        WebDriver driver = new ChromeDriver(options);
        //(4)设置窗口最大化及网页等待时间
//        driver.manage().window().maximize();  //窗口最大化
//        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        //（5）启动driver浏览网页
        driver.get(url);  //输入网址

        //2.设置等待时间
        Thread.sleep(1000);

        //3.当前页面截图并存储到本地（原图片）
        File srcfile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
        try {
            FileUtils.copyFile(srcfile, new File("D:/tmp/source.png"));
        } catch (IOException e) {
            e.printStackTrace();
        }

        //4.关闭驱动
        driver.close();
        System.exit(-1);
    }
}
